package com.cti.ftpservice.ws;

import java.util.List;

import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

import com.cti.ftpservice.vo.FileVO;
import com.cti.ftpservice.vo.PageViewVO;
import com.cti.ftpservice.ws.impl.WSException;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoCategoryVos;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoDetailsVO;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoPropertyLoadVo;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoPublisherVo;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoSearchNormalVO;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoStatisticsTJVo;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoUpdateVo;
import com.ctibook.booksystem.vo.bookcatalog.BookInfoUploadFileRecordVO;

@WebService(targetNamespace = "http://ws.ftpservice.cti.com/")
public interface BookCatalogWS {
	/**
	 * 上传数目数据（zip文件）
	 * 
	 * @param fileVo
	 * @throws WSException
	 */
	@WebResult(name = "uploadBookInfoFile2Result")
	public void uploadBookInfoFile2(@WebParam(name="userId")String userId,@WebParam(name="userName")String userName,@WebParam(name = "fileVo") FileVO fileVo,@WebParam(name = "isCheckedIsbn")Boolean isCheckedIsbn)throws WSException;
	
	@WebResult(name = "fullTextSearchFetchUniqueBookByIsbn")
	public BookInfoDetailsVO fullTextSearchFetchUniqueBookByIsbn(@WebParam(name = "isbn")String isbn) throws WSException ;
	
	@WebResult(name = "fullTextSearchBookInfoVisiblePropertyByNormalSearchVO")
	public PageViewVO<BookInfoDetailsVO> fullTextSearchBookInfoVisiblePropertyByNormalSearchVO(@WebParam(name = "vo")BookInfoSearchNormalVO vo, @WebParam(name = "pageIndex")int pageIndex, @WebParam(name = "pageSize")int pageSize,@WebParam(name = "bookInfoPropertyLoadVo")BookInfoPropertyLoadVo bookInfoPropertyLoadVo) throws WSException ;
	
	@WebResult(name = "getAllBookInfoCategoryVos")
	public List<BookInfoCategoryVos> getAllBookInfoCategoryVos();
	
	@WebResult(name = "getAllBookInfoPublisherVos")
	public List<BookInfoPublisherVo> getAllBookInfoPublisherVos();
	
	@WebResult(name = "getBookInfoUploadFileRecordVO")
	public List<BookInfoUploadFileRecordVO> getBookInfoUploadFileRecordVO(@WebParam(name = "startDate")String startDate, @WebParam(name = "endDate")String endDate,@WebParam(name = "parsered") String parsered,@WebParam(name = "operaterId") String operaterId);
	
	@WebResult(name = "updateBookInfoIsBlackBookByIsbns")
	public void updateBookInfoIsBlackBookByIsbns(@WebParam(name = "isbns")String[] isbns,@WebParam(name = "isBlackBook")boolean isBlackBook);
	
	@WebResult(name = "updateBookInfoPriceAndCurrency")
	public String updateBookInfoPriceAndCurrency(@WebParam(name = "updateVos")BookInfoUpdateVo[] updateVos);
	
	@WebResult(name = "deleteBookInfoByIsbns")
	public void deleteBookInfoByIsbns(@WebParam(name = "isbns")String[] isbns);
	
	@WebResult(name = "getBookInfoStatisticsVosByBookInfoSearchNormalVO")
	public  List<BookInfoStatisticsTJVo> getBookInfoStatisticsVosByBookInfoSearchNormalVO(@WebParam(name = "bookInfoSearchNormalVO")BookInfoSearchNormalVO bookInfoSearchNormalVO);
}
